/**
 * Copyright 2018 人人开源 http://www.renren.io
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package com.oraro.paygatewaybiz.utils;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.oraro.paygatewaybiz.xss.SQLFilter;
import org.apache.commons.lang.StringUtils;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 *
 *
 * @author jianghuiyong
 * @email
 * @date 2018-11-16 16:34:25
 */
public class Query<T> extends LinkedHashMap<String, Object> {
	private static final long serialVersionUID = 1L;
    /**
     * mybatis-plus分页参数
     */
    private Page<T> page;
    /**
     * 当前页码
     */
    private int currPage = 1;
    /**
     * 每页条数
     */
    private int limit = 10;

    private String[] ascs;

    private String[] descs;

    private static final String LIMIT = "limit";

    public Query(Map<String, Object> params){
        this.putAll(params);

        //分页参数
        if(params.get("page") != null){
            currPage = Integer.parseInt((String)params.get("page"));
        }
        if(params.get(LIMIT) != null){
            limit = Integer.parseInt((String)params.get(LIMIT));
        }

        this.put("offset", (currPage - 1) * limit);
        this.put("page", currPage);
        this.put(LIMIT, limit);

        //mybatis-plus分页
        this.page = new Page<>(currPage, limit);

        if (params.get("ascs") != null) {
            ascs = (String[])params.get("ascs");
            this.page.setAsc(ascs);
        }
        if (params.get("descs") != null) {
            descs = (String[])params.get("descs");
            this.page.setDesc(descs);
        }

    }

    public Page<T> getPage() {
        return page;
    }

    public int getCurrPage() {
        return currPage;
    }

    public int getLimit() {
        return limit;
    }
}
